package com.cn.kabalifemerchants.utils;

import android.content.Context;
import android.widget.ImageView;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;
import com.bumptech.glide.request.RequestOptions;
import com.cn.kabalifemerchants.R;
import com.cn.kabalifemerchants.view.RoundAngleImageView;
import com.youth.banner.loader.ImageLoader;

/**
 * Created by 晓林 on 2020/1/7.
 * function:
 */
public class GlideImageLoader extends ImageLoader {

    static RequestOptions options;

    @Override
    public void displayImage(Context context, Object path, ImageView imageView) {
        /**
         注意：
         1.图片加载器由自己选择，这里不限制，只是提供几种使用方法
         2.返回的图片路径为Object类型，由于不能确定你到底使用的那种图片加载器，
         传输的到的是什么格式，那么这种就使用Object接收和返回，你只需要强转成你传输的类型就行，
         切记不要胡乱强转！
         */


        //Glide 加载图片简单用法
//        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
//        Glide.with(context).load(path).into(imageView);
        try {
            loadCacheFillet(context, String.valueOf(path), imageView);
        } catch (Exception e) {
            e.printStackTrace();
        }

        //Picasso 加载图片简单用法
//        Picasso.with(context).load(String.valueOf(path)).into(imageView);

        //用fresco加载图片简单用法，记得要写下面的createImageView方法
//        Uri uri = Uri.parse((String) path);
//        imageView.setImageURI(uri);
    }

    //提供createImageView 方法，如果不用可以不重写这个方法，主要是方便自定义ImageView的创建
    @Override
    public ImageView createImageView(Context context) {
        //使用fresco，需要创建它提供的ImageView，当然你也可以用自己自定义的具有图片加载功能的ImageView
        // SimpleDraweeView simpleDraweeView=new SimpleDraweeView(context);
        RoundAngleImageView roundedImg = new RoundAngleImageView(context);
        return roundedImg;
    }

    /**
     * 加载图片/圆角图片
     *
     * @param context
     * @param url
     * @param iv
     */
    public static void loadCacheFillet(Context context, String url, ImageView iv) throws Exception {
        loadCacheFillet(context, url, iv, -1);
    }

    public static void loadCacheFillet(Context context, int url, ImageView iv) throws Exception {
        loadCacheFillet(context, url, iv, -1);
    }

    /**
     * 加载图片 缓存  圆角
     *
     * @param context
     * @param url
     * @param iv
     * @param defaultImg
     */
    public static void loadCacheFillet(Context context, String url, ImageView iv, int defaultImg) throws Exception {
        options = new RequestOptions()
                .centerCrop()
                .diskCacheStrategy(DiskCacheStrategy.RESOURCE)
                .placeholder(defaultImg == -1 ? R.drawable.banner : defaultImg)
                .error(defaultImg == -1 ? R.drawable.banner : defaultImg);
        if (null != context) {
            Glide.with(context)
                    .load(url)
                    .apply(options)
                    .into(iv);
        }
    }

    public static void loadCacheFillet(Context context, int url, ImageView iv, int defaultImg) throws Exception {
        options = new RequestOptions()
                .centerCrop()
                .diskCacheStrategy(DiskCacheStrategy.RESOURCE);
//                .placeholder(defaultImg == -1 ? R.drawable.item : defaultImg)
//                .error(defaultImg == -1 ? R.drawable.item : defaultImg);
//                .transform(new GlideRoundTransform());
        if (null != context) {
            Glide.with(context)
                    .load(url)
                    .apply(options)
                    .into(iv);
        }

    }
}

